home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / gui / gui4cli.lha / Gui4Cli / Docs / Tutorials / ListViews2.gc < prev    next >
Text File  |  1999-04-21  |  3KB  |  84 lines

  1. G4C
  2.  
  3. ; MULTISELECT LISTVIEWS
  4.  
  5. ; This is an example of multiselect listviews.
  6. ; Here again we have to give a file name which the listview will
  7. ; display.
  8.  
  9. ; We'll display the "guis:docs/printme" file in one and nothing in
  10. ; the other. The button transfers the selected lines
  11.  
  12.  
  13. WINBIG -1 -1 414 186 ListViews2.gc
  14. WinType 11110001
  15. BOX 0 0 0 0 out button
  16.  
  17. xOnLoad
  18.     GuiOpen ListViews2.gc
  19.  
  20. xOnClose
  21.     GuiQuit ListViews2.gc
  22.  
  23.  
  24. ; ----------------------------------------------------------
  25. ;       The 2 listviews
  26. ; ----------------------------------------------------------
  27.  
  28.  
  29. ; Note that a multiselect lv will "happen" whenever the user double
  30. ; clicks on an item. Here, we'll not do anything when the user
  31. ; double clicks.. (that's why the lv's don't have any commands attached)
  32.  
  33. ; ---- The Top listview
  34.  
  35. XLISTVIEW 4 2 405 98 "" Top.lv "guis:docs/printme" 10 MULTI
  36.     gadid 1
  37.     ; we'll give this one a monospace font..
  38.     gadfont #mono 8 000
  39.  
  40.  
  41. ; ---- The bottom listview (no file)
  42.  
  43. XLISTVIEW 5 108 405 76 "" Bottom.lv "" 10 MULTI
  44.     GadID 2
  45.  
  46.  
  47. ; ----------------------------------------------------------
  48. ;       A button to transfer selected items
  49. ; ----------------------------------------------------------
  50.  
  51. ; to do this we have to use the lvmulti command to see which of the
  52. ; lines in the Top listview have been selected. We use the internal
  53. ; variables to get our results - yes.. go read all about them..
  54.  
  55.  
  56. XBUTTON 4 94 361 14 "Copy Selected items to Bottom Listview -->>"
  57.     lvuse listviews2.gc 1      ; use the Top listview
  58.     lvmulti first              ; get the first selected record
  59.     while $$lv.line > ''       ; while there *are* selected items
  60.        dummy = $$lv.rec        ; store the selected line into a variable
  61.        lvuse listviews2.gc 2   ; use the other (Bottom) listview
  62.        lvadd $dummy            ; append the line to it
  63.        lvuse listviews2.gc 1   ; use the Top listview again
  64.        lvmulti off             ; unselect the line we just transfered
  65.        lvmulti next            ; get the next selected line
  66.     endwhile                   ; .. until there are no more - i.e., until
  67.                                ; the $$lv.line internal variable = ''
  68.  
  69. ; Note that in Gui4Cli 0 is a valid number.
  70. ; The top line of a listview is the 0th line.
  71. ; This may seem confusing in the begining but there is a weird kind of
  72. ; sense in it, so bear with me..
  73.  
  74. ; When the Current Line is the top line, then $$lv.line = 0
  75.  
  76. ; When Gui4Cli runs out of selected lines, the current line will
  77. ; be set to nothing (i.e. $$lv.line = '') and that's how we know that 
  78. ; we're finished.  
  79.  
  80. ; That's why we use the - while $$lv.line > '' - comparison above
  81.  
  82.  
  83.  
  84.